type MapPerson<T> = {
  +readonly [Property in keyof T]+?: T[Property]
}

interface IPerson {
  name: string
  age: number
  height: number
  address: string
}

type IPersonOptional = MapPerson<IPerson>

const p: IPersonOptional = {}

export { }